home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Just Call Me Internet
/
Just Call Me Internet.iso
/
prog
/
atari
/
m2
/
cat3src
/
cat
/
fontsele.d
< prev
next >
Wrap
Text File
|
1997-10-26
|
5KB
|
126 lines
DEFINITION MODULE FontSelect;
(* Modul: FontSelect *
* Autor: Dirk Steins *
* erstellt am: 11.10.91 *
* letzte nderung am: 20.07.93 *
* Version: 0.5 *
* Interne Version: V#015 *
* Kommentar: Fontauswahl fr Cat und CatPutz *
* umbenannt zu CatPutz2 *
*
* Es wird eine eigene Fontliste aufgebaut, und aus dieser kann man
* dann die Fonts auswhlen.
* Die Ressource fr beide mu gleich sein, da ich nicht alle
* Konstanten anpassen will. Also mssen zumindest die symbolischen
* Namen alle vorhanden sein.
*
*==============================================================*
* Datum Version nderung *
*==============================================================*
* *
* 11.10.91 0.1 Modul erstellt, da starke nderungen *
* in MagicLib. *
* *
* 20.7.93 0.5 Ab dieser Version ist die Ressource *
* im Modul integriert. *
* *
*==============================================================*)
FROM SYSTEM IMPORT ADDRESS;
FROM MagicSys IMPORT sINTEGER, sBITSET;
TYPE tFontinfo = RECORD
id: sINTEGER; (* Font-ID *)
name: ARRAY [0..32] OF CHAR; (* Name des Fonts *)
chw: sINTEGER; (* Zeichenbreite *)
chh: sINTEGER; (* Zeichenhhe *)
boxw: sINTEGER; (* Zellenbreite *)
boxh: sINTEGER; (* Zellenhhe *)
point: sINTEGER; (* aktuelle Gre *)
min: sINTEGER; (* Minimale Gre des Fonts *)
max: sINTEGER; (* Maximale Gre des Fonts *)
mono: BOOLEAN; (* TRUE, wenn Monospaced *)
fsm: BOOLEAN; (* TRUE, wenn FSM-Font *)
END;
(* Wenn noch keine Fonts fr die Workstation geladen sind, wird dieses von den Funktionen
* automatisch beim ersten Aufruf durchgefhrt.
* Vor dem Schlieen der Workstation mu UnloadFonts aufgerufen werden,
* damit die Workstation wieder aus der Fontliste entfernt werden kann.
*)
PROCEDURE DoSelectFont (handle : sINTEGER; monoFonts : BOOLEAN;
VAR fontId, fontSize : sINTEGER): BOOLEAN;
(* Fhrt kompletten Dialog durch.
* handle : VDI-Handle der Workstation;
* monoFonts: Nur monospaced-Fonts werden angezeigt.
*)
PROCEDURE FontNumber (handle : sINTEGER) : sINTEGER;
(* Anzahl der zur Verfgung stehenden Fonts *)
PROCEDURE FontInfo (handle, (* VDI-Handle *)
font : sINTEGER; (* Font-ID *)
VAR info : tFontinfo);
(* Info ber den Font. Ersetzt die gleichnamige Prozedur aus mtFonts *)
PROCEDURE LoadFonts (handle : sINTEGER; VAR num : sINTEGER);
(* Fast wie mtFonts.LoadFonts, nur wird die Fontliste
* nicht zurckgegeben. Die wird intern verwaltet.
*)
PROCEDURE UnloadFonts (handle : sINTEGER);
(* Lscht die Fonts wieder aus der Liste *)
PROCEDURE FontActive (handle : sINTEGER) : sINTEGER;
(* Liefert die ID des momentan aktiven Fonts.
*)
PROCEDURE FontSelect (handle : sINTEGER; font : sINTEGER);
(* Selektion eines Fonts
*)
(* Die folgenden Funktionen rufen direkt die entsprechenden
* Funktionen aus mtFonts auf.
* Sind nur mit hier drin, damit man nicht zwei Font-Module
* importieren mu!
*)
PROCEDURE FontSize (handle, size: sINTEGER;
VAR cw, ch, bw, bh: sINTEGER): sINTEGER;
(* Bestimmung der Gre des aktuellen Fonts in POINTS.
* cw = Zeichenbreite
* ch = Zeichenhhe
* bw = Breite der Zeichenbox
* bh = Hhe der Zeichenbox
*)
PROCEDURE SetFont (handle : sINTEGER; VAR font, fontSiz : sINTEGER;
getBoldWidth : BOOLEAN;
VAR mono, fsm : BOOLEAN; VAR boxw, boxh : sINTEGER);
(* Diese Prozedur hierhin verlagert. Setzt den Font und die Gre und
* gibt die Ausmae zurck und die Attribute mono und fsm.
* getBoldWidth: Bei einigen (auch unproportionalen) Zeichenstzen
* ist die Breite eines fetten Zeichens anders als die eines normalen
* Zeichens. In einigen Fllen ist es deshalb sinnvoll, die Breite
* des fetten Zeichens zu nehmen (z.B. formatierte Ausgabe in einer Liste)
*)
(*
PROCEDURE FontDefsize (handle: sINTEGER);
(* Stellt die Max-Gre DIV 2 des aktuellen Fonts ein. Dies ist in der
* Regel der Default-Size des Fonts.
* Beim Systemfont wird die Gre entsprechend der Auflsung gesetzt.
*)
PROCEDURE FontRotate (handle, angle: sINTEGER): sINTEGER;
(* Winkel einstellen, in dem der Font ausgegeben wird. Bei Bitmap-
* Fonts sind hier nur 0, 90, 180 und 270 Grad mglich.
* angle ist in Zehntel Grad anzugeben (1800 fr 180 Grad)
*)
*)
END FontSelect.